package com.itheima.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.github.pagehelper.Page;
import com.itheima.pojo.CheckGroup;
import com.itheima.pojo.CheckItem;

import java.util.List;
import java.util.Map;

/**
 * 检查组管理
 */
public interface CheckGroupDao {

    /**
     * 添加检查组
     * @param checkGroup
     */
    void add(CheckGroup checkGroup);

    /**
     * 添加检查组和检查项的外键关系
     * @param map
     */
    void setCheckGroupAndCheckItem(Map map);

    /**
     * 通过模糊查询查询所有的数据
     * @param queryString  模糊查询的条件
     * @return  page对象的集合
     */
    Page<CheckGroup> findByCondition(String queryString);

    /**
     * 通过id 插叙检查组信息
     *
     * @param id 通过检查组的id查询检查组合他所关联的所有的检查项
     * @return
     */
    CheckGroup findCheckGroupById(Integer id);

    /**
     * 通过id 通过检查组的id查询所有的检查项
     *
     * @param id 通过id进行查询
     * @return
     */
    List<Integer> findCheckItemIdsByCheckGroupId(Integer id);

    /**
     * 修改当前检查组的基本信息
     * @param checkGroup  检查组的信息
     */
    void update(CheckGroup checkGroup);

    /**
     * 通过检查组id 删除所有的关联信息
     * @param id 检查组的id
     */
    void deleteAssoication(Integer id);

    /**
     * 通过id删除检查组
     * @param id 检查组的id
     */
    void delete(Integer id);

    /**
     * 查询所有的检查组
     *
     * @return 所有的检查组的集合
     */
    List<CheckGroup> findAll();

    /**
     * 通过检查组的id查询使用它的套餐的id的数量
     * @param id 检查组的id
     * @return
     */
    Long findContByCheckGroupId(Integer id);
}
